এই অধ্যায়ে আপনি সি প্রোগ্রামিং এ array নিয়ে কাজ করা শিখবেন। সুতরাং এই অধ্যায় শেষে আপনি array ডিক্লেয়ার(declare), ইনিশিয়ালাইজ(initialize) এবং এক্সেস(access) করা শিখবেন।
Array হলো একটি বিশেষ ধরনের ভেরিয়েবল যার মধ্যে একসঙ্গে একই টাইপের নির্দিষ্ট সংখ্যক ভ্যালু জমা রাখা যায়।
উদাহরণস্বরূপঃ আপনি যদি ১০০০ জন ছাত্রের পরীক্ষার মার্ক সংগ্রহ করে রাখতে চান তাহলে সিঙ্গেল ভ্যারিয়েবলের পরিবর্তে নিচের ন্যায় array ভ্যারিয়েবল তৈরি করুন।
float mark[1000];
সি প্রোগ্রামিং এ Array ডিক্লেয়ারেশনের পরে array এর টাইপ এবং দৈর্ঘ্য পরিবর্তন করা যায় না।
সি প্রোগ্রামিং এ দুই ধরণের array রয়েছেঃ
- One-dimensional array
- Multidimensional array
dataType arrayName[arraySize];
উদাহরণস্বরূপ
float mark[5];
এখানে mark নামের এবং ফ্লোটিং পয়েন্ট টাইপের একটি array ভ্যারিয়েবল ডিক্লেয়ার করা হয়েছে যার সাইজ ৫। সুতরাং ইহা ৫ টি দশমিক(float) ভ্যালু গ্রহণ করতে পারে।
ইনডেক্স(index) ব্যবহার করে Array এর এলিমেন্টকে এক্সেস করা হয়।
ধরুন, আপনি উপরের mark অ্যারেটি ডিক্লেয়ার করেছেন। তাহলে mark এর এলিমেন্ট-সমূহকে এক্সেস করার জন্য প্রথম এলিমেন্টের ক্ষেত্রে mark[0], দ্বিতীয় এলিমেন্টের ক্ষেত্রে mark[1] লিখতে হবে এবং এভাবে চলতে থাকবে।
- Array এর ইনডেক্সিং 1 এর পরিবর্তে 0 দিয়ে শুরু হয়। উপরের উদাহরণে array এর প্রথম এলিমেন্টটি হলোঃ mark[0]
- Array এর সাইজ যদি n হয় তাহলে এর শেষ এলিমেন্টকে এক্সেস করার জন্য
(n-1)
ইনডেক্স ব্যবহার করা হয়। উপরের উদাহরণে array এর সাইজ ৫ তাই শেষ এলিমেন্টকে mark[4] এর মাধ্যমে এক্সেস করা হয়েছে।- ধরুন
mark[0]
এর এড্রেস 8024a দ্বারা শুরু হয়েছে তাহলেmark[1]
এর এড্রেস হবে 8028a এবংmark[2]
এর এড্রেস হবে 8032a, কারণ ফ্লোট ভ্যারিয়েবলের সাইজ ৪(চার) বাইট।
ডিক্লেয়ারেশনের সময়ও array ভ্যারিয়েবলকে ইনিশিয়ালাইজড(initialize) করা যায়। অর্থাৎ ডিক্লেয়ারেশনের সময় array তে ভ্যালু এসাইন করা যায়।
উদাহরণস্বরূপঃ
ডিক্লেয়ারেশনের সময় সাইজসহ array ইনিশিয়ালাইজেশন(initialization)
int mark[5] = {89, 80, 88, 83, 90};
ডিক্লেয়ারেশনের সময় সাইজ ছাড়া array ইনিশিয়ালাইজেশন(initialization)
int mark[] = {89, 80, 88, 83, 90};
এখানে
mark[0] হলো 89 এর সমান
mark[1] হলো 80 এর সমান
mark[2] হলো 88 এর সমান
mark[3] হলো 83 এর সমান
mark[4] হলো 90 এর সমান
int mark[5] = {89, 80, 88, 83, 90}
// তৃতীয় এলিমেন্টের জায়গায় ভিন্ন ভ্যালু ইনসার্ট(insert)
mark[2] = 9;
// ইউজার কর্তৃক ইনপুট নিয়ে তৃতীয় এলিমেন্টে ভ্যালু ইনসার্ট
scanf("%d", &mark[2]);
// ইউজার কর্তৃক ইনপুট নিয়ে (i+1) তম এলিমেন্টে ভ্যালু ইনসার্ট
scanf("%d", &mark[i]);
// array এর প্রথম এলিমেন্ট প্রিন্ট করবে
printf("%d", mark[0]);
// array এর i তম এলিমেন্ট প্রিন্ট করবে
printf("%d", age[i-1]);
kt_satt_skill_example_id=348
ধরুন, আপনি নিচের ন্যায় ১০টি এলিমেন্ট বিশিষ্ট একটি array ডিক্লেয়ার করেছেনঃ
int testArray[10];
আপনি testArray[0]
থেকে testArray[9]
ব্যবহার করে array এর মেম্বার-সমূহকে এক্সেস করতে পারবেন।
আপনি যদি array এলিমেন্টকে এই রেঞ্জের বাইরে থেকে যেমন - testArray[15]
এভাবে এক্সেস করতে চান তাহলে কম্পাইলার কোনো error দেখাবেনা ঠিকই। কিন্তু এই কারণে অপ্রত্যাশিত ফলাফল যেমন-undefined আসতে পারে।
common.read_more